home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Saar AMOK 2
/
Saar AMOK II - Oktober 1994 (1994)(Kreativ Marketing)(DE)[!][I-7598].iso
/
tools
/
amigaguide
/
ag_v39
/
source
/
hyperbrowser
/
memory.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-08
|
2KB
|
82 lines
/* memory.c
*
* (c) Copyright 1992 Commodore-Amiga, Inc. All rights reserved.
*
* This software is provided as-is and is subject to change; no warranties
* are made. All use is at your own risk. No liability or responsibility
* is assumed.
*
*/
#include "hyperbrowser.h"
/*****************************************************************************/
#define HEXASC 39
#define HEXSIZE 61
#define OUTSIZE 512
void showmemory (struct GlobalData * gd, ULONG address)
{
char *ptr = (char *) address;
char outbuf[OUTSIZE];
char *msg = NULL;
int counter = 0;
int cyc = 0;
ULONG *mem;
int i, max;
int c;
/* Build the title */
strcpy (gd->gd_Node, "@{b}Memory@{ub}\n\n");
if (address)
{
mem = ((ULONG *)address)-1;
max = MIN (*mem, 384);
if (max == *mem)
bprintf (gd, "%08lx, %ld\n", address, *mem);
else
bprintf (gd, "%08lx\n", address);
for (i = 0; i < max; i++)
{
c = (int *)(*ptr & 0xFF);
ptr++;
if (!cyc)
{
/* Time to init the output buffer */
memset(outbuf, ' ', HEXSIZE);
outbuf[HEXSIZE-1] = 0;
}
counter++;
msg = outbuf+(cyc<<1)+(cyc>>2);
msg[0] = "0123456789ABCDEF"[c>>4];
msg[1] = "0123456789ABCDEF"[c&15];
if (((c+1)&0x7f) <= ' ') c = '.';
msg = "%04lx: %s\n";
outbuf[HEXASC+cyc] = c;
cyc++;
if (cyc != 16) continue;
cyc = 0;
bprintf (gd, msg, counter, outbuf);
msg = NULL;
}
if (msg)
{
bprintf (gd, msg, counter, outbuf);
}
}
else
{
strcat (gd->gd_Node, "NULL pointer\n");
}
}